package com.itestor.iptv.modules.common.service;

import java.util.List;
import java.util.Map;

import com.itestor.iptv.modules.common.domain.RoleGroup;
import com.itestor.iptv.modules.common.domain.UserRoleGroup;
import com.itestor.iptv.modules.common.vo.User;
import com.itestor.iptv.modules.common.vo.UserQuery;

/**
 * 
 * @author Mr.li
 *
 */
public interface UserService {

	/**
	 * 用户登陆.
	 * @param username 用户名
	 * @param password 密码
	 * @return 返回统一帐户对象
	 */
	User login(String username, String password);

	/**
	 * 获取系统用户.
	 * @param username 用户名称
	 * @return 用户
	 */
	User get(String username);

	/**
	 * 获取系统用户.
	 * @param id 用户Id
	 * @return 用户
	 */
	User get(int id);

	/**
	 * 分配用户权限.
	 * @param user 用户.
	 * @param byuser 
	 */
	void grant(User user,User byuser);
	
	/**
	 * 
	 * @return
	 */
	Map<String, String> getRoleMap();
	
	
	/**
     * 添加用户.
     * @param user 用户.
     */
    void add(User user);

    /**
     * 编辑用户.
     * @param user 用户.
     * @param byuser 操作用户.
     */
    void modify(User user, User byuser);

    /**
     * 删除用户.
     * @param ids 用户Id.
     */
    void delete(int[] ids);

    /**
     * 按条件获取用户列表.
     * @param query 查询条件
     */
    void queryUserList(UserQuery query);
	
    /**
     * 
     */
    void testLeftJoin();
        
    /**
     * 
     * @return
     */
    List<RoleGroup> findAllRoleGroup();

    void grantRoleGroup(UserRoleGroup pUserRoleGroup);
    
    UserRoleGroup getUserRoleGroupByUesrId(Integer userId);
    
    
}
